device = GDK_DEVICE (device_core);
- _gdk_device_add_axis (device, NULL, GDK_AXIS_X, 0, 0, 1);
- _gdk_device_add_axis (device, NULL, GDK_AXIS_Y, 0, 0, 1);
+ _gdk_device_add_axis (device, GDK_AXIS_X, 0, 0, 1);
+ _gdk_device_add_axis (device, GDK_AXIS_Y, 0, 0, 1);
}
static void
struct _GdkAxisInfo
{
- char *label;
GdkAxisUse use;
-
gdouble min_axis;
gdouble max_axis;
gdouble min_value;
G_TYPE_NONE, 1, GDK_TYPE_DEVICE_TOOL);
}
-static void
-gdk_device_axis_info_clear (gpointer data)
-{
- GdkAxisInfo *info = data;
-
- g_free (info->label);
-}
-
static void
gdk_device_init (GdkDevice *device)
{
device->axes = g_array_new (FALSE, TRUE, sizeof (GdkAxisInfo));
- g_array_set_clear_func (device->axes, gdk_device_axis_info_clear);
}
static void
return device->axes->len;
}
-/**
- * gdk_device_get_axis_names:
- * @device: a #GdkDevice
- *
- * Returns a null-terminated array of strings, containing the labels for
- * the axes that @device currently has.
- * If the device has no axes, %NULL is returned.
- *
- * Returns: (nullable) (transfer full): A null-terminated string array,
- * free with g_strfreev().
- **/
-char **
-gdk_device_get_axis_names (GdkDevice *device)
-{
- GPtrArray *axes;
- gint i;
-
- g_return_val_if_fail (GDK_IS_DEVICE (device), NULL);
- g_return_val_if_fail (device->source != GDK_SOURCE_KEYBOARD, NULL);
-
- if (device->axes->len == 0)
- return NULL;
-
- axes = g_ptr_array_new ();
-
- for (i = 0; i < device->axes->len; i++)
- {
- GdkAxisInfo axis_info;
-
- axis_info = g_array_index (device->axes, GdkAxisInfo, i);
- g_ptr_array_add (axes, g_strdup (axis_info.label));
- }
-
- g_ptr_array_add (axes, NULL);
-
- return (char **) g_ptr_array_free (axes, FALSE);
-}
-
-/**
- * gdk_device_get_axis_value: (skip)
- * @device: a pointer #GdkDevice.
- * @axes: (array): pointer to an array of axes
- * @axis_label: name of the label
- * @value: (out): location to store the found value.
- *
- * Interprets an array of double as axis values for a given device,
- * and locates the value in the array for a given axis label, as returned
- * by gdk_device_get_axes()
- *
- * Returns: %TRUE if the given axis use was found, otherwise %FALSE.
- **/
-gboolean
-gdk_device_get_axis_value (GdkDevice *device,
- gdouble *axes,
- const char *axis_label,
- gdouble *value)
-{
- gint i;
-
- g_return_val_if_fail (GDK_IS_DEVICE (device), FALSE);
- g_return_val_if_fail (device->source != GDK_SOURCE_KEYBOARD, FALSE);
-
- if (axes == NULL)
- return FALSE;
-
- for (i = 0; i < device->axes->len; i++)
- {
- GdkAxisInfo axis_info;
-
- axis_info = g_array_index (device->axes, GdkAxisInfo, i);
-
- if (!g_str_equal (axis_info.label, axis_label))
- continue;
-
- if (value)
- *value = axes[i];
-
- return TRUE;
- }
-
- return FALSE;
-}
-
/**
* gdk_device_get_axis: (skip)
* @device: a #GdkDevice
guint
_gdk_device_add_axis (GdkDevice *device,
- const char *label_name,
GdkAxisUse use,
gdouble min_value,
gdouble max_value,
guint pos;
axis_info.use = use;
- axis_info.label = g_strdup (label_name);
axis_info.min_value = min_value;
axis_info.max_value = max_value;
axis_info.resolution = resolution;
void
_gdk_device_get_axis_info (GdkDevice *device,
- guint index_,
- const char **label_name,
- GdkAxisUse *use,
- gdouble *min_value,
- gdouble *max_value,
- gdouble *resolution)
+ guint index_,
+ GdkAxisUse *use,
+ gdouble *min_value,
+ gdouble *max_value,
+ gdouble *resolution)
{
GdkAxisInfo *info;
info = &g_array_index (device->axes, GdkAxisInfo, index_);
- *label_name = info->label;
*use = info->use;
*min_value = info->min_value;
*max_value = info->max_value;
gboolean
_gdk_device_translate_surface_coord (GdkDevice *device,
- GdkSurface *surface,
- guint index_,
- gdouble value,
- gdouble *axis_value)
+ GdkSurface *surface,
+ guint index_,
+ gdouble value,
+ gdouble *axis_value)
{
GdkAxisInfo axis_info;
GdkAxisInfo *axis_info_x, *axis_info_y;
GDK_AVAILABLE_IN_ALL
gint gdk_device_get_n_axes (GdkDevice *device);
GDK_AVAILABLE_IN_ALL
-char ** gdk_device_get_axis_names (GdkDevice *device);
-GDK_AVAILABLE_IN_ALL
gboolean gdk_device_get_axis_value (GdkDevice *device,
gdouble *axes,
- const char *axis_label,
gdouble *value);
GDK_AVAILABLE_IN_ALL
void _gdk_device_reset_axes (GdkDevice *device);
guint _gdk_device_add_axis (GdkDevice *device,
- const char *label_atom,
GdkAxisUse use,
gdouble min_value,
gdouble max_value,
gdouble resolution);
void _gdk_device_get_axis_info (GdkDevice *device,
- guint index,
- const char**label_atom,
- GdkAxisUse *use,
- gdouble *min_value,
- gdouble *max_value,
- gdouble *resolution);
+ guint index,
+ GdkAxisUse *use,
+ gdouble *min_value,
+ gdouble *max_value,
+ gdouble *resolution);
gboolean _gdk_device_translate_surface_coord (GdkDevice *device,
GdkSurface *surface,
device = GDK_DEVICE (device_core);
- _gdk_device_add_axis (device, NULL, GDK_AXIS_X, 0, 0, 1);
- _gdk_device_add_axis (device, NULL, GDK_AXIS_Y, 0, 0, 1);
+ _gdk_device_add_axis (device, GDK_AXIS_X, 0, 0, 1);
+ _gdk_device_add_axis (device, GDK_AXIS_Y, 0, 0, 1);
}
static gint
g_object_freeze_notify (G_OBJECT (tablet->current_device));
_gdk_device_reset_axes (tablet->current_device);
- _gdk_device_add_axis (tablet->current_device, NULL, GDK_AXIS_X, 0, 0, 0);
- _gdk_device_add_axis (tablet->current_device, NULL, GDK_AXIS_Y, 0, 0, 0);
+ _gdk_device_add_axis (tablet->current_device, GDK_AXIS_X, 0, 0, 0);
+ _gdk_device_add_axis (tablet->current_device, GDK_AXIS_Y, 0, 0, 0);
if (tool->tool_axes & (GDK_AXIS_FLAG_XTILT | GDK_AXIS_FLAG_YTILT))
{
- axis_pos = _gdk_device_add_axis (tablet->current_device, NULL,
+ axis_pos = _gdk_device_add_axis (tablet->current_device,
GDK_AXIS_XTILT, -90, 90, 0);
tablet->axis_indices[GDK_AXIS_XTILT] = axis_pos;
- axis_pos = _gdk_device_add_axis (tablet->current_device, NULL,
+ axis_pos = _gdk_device_add_axis (tablet->current_device,
GDK_AXIS_YTILT, -90, 90, 0);
tablet->axis_indices[GDK_AXIS_YTILT] = axis_pos;
}
if (tool->tool_axes & GDK_AXIS_FLAG_DISTANCE)
{
- axis_pos = _gdk_device_add_axis (tablet->current_device, NULL,
+ axis_pos = _gdk_device_add_axis (tablet->current_device,
GDK_AXIS_DISTANCE, 0, 65535, 0);
tablet->axis_indices[GDK_AXIS_DISTANCE] = axis_pos;
}
if (tool->tool_axes & GDK_AXIS_FLAG_PRESSURE)
{
- axis_pos = _gdk_device_add_axis (tablet->current_device, NULL,
+ axis_pos = _gdk_device_add_axis (tablet->current_device,
GDK_AXIS_PRESSURE, 0, 65535, 0);
tablet->axis_indices[GDK_AXIS_PRESSURE] = axis_pos;
}
if (tool->tool_axes & GDK_AXIS_FLAG_ROTATION)
{
- axis_pos = _gdk_device_add_axis (tablet->current_device, NULL,
+ axis_pos = _gdk_device_add_axis (tablet->current_device,
GDK_AXIS_ROTATION, 0, 360, 0);
tablet->axis_indices[GDK_AXIS_ROTATION] = axis_pos;
}
if (tool->tool_axes & GDK_AXIS_FLAG_SLIDER)
{
- axis_pos = _gdk_device_add_axis (tablet->current_device, NULL,
+ axis_pos = _gdk_device_add_axis (tablet->current_device,
GDK_AXIS_SLIDER, -65535, 65535, 0);
tablet->axis_indices[GDK_AXIS_SLIDER] = axis_pos;
}
GdkDevice *slave)
{
gdouble axis_min, axis_max, axis_resolution;
- const char *axis_label;
GdkAxisUse axis_use;
gint axis_count;
gint i;
for (i = 0; i < axis_count; i++)
{
- _gdk_device_get_axis_info (slave, i, &axis_label, &axis_use, &axis_min,
+ _gdk_device_get_axis_info (slave, i, &axis_use, &axis_min,
&axis_max, &axis_resolution);
- _gdk_device_add_axis (master, axis_label, axis_use, axis_min,
+ _gdk_device_add_axis (master, axis_use, axis_min,
axis_max, axis_resolution);
}
void
_gdk_device_virtual_set_active (GdkDevice *device,
- GdkDevice *new_active)
+ GdkDevice *new_active)
{
GdkDeviceVirtual *virtual = GDK_DEVICE_VIRTUAL (device);
int n_axes, i;
- const char *label_atom;
GdkAxisUse use;
gdouble min_value, max_value, resolution;
_gdk_device_reset_axes (device);
n_axes = gdk_device_get_n_axes (new_active);
for (i = 0; i < n_axes; i++)
- {
- _gdk_device_get_axis_info (new_active, i,
- &label_atom, &use,
- &min_value, &max_value, &resolution);
- _gdk_device_add_axis (device,
- label_atom, use,
- min_value, max_value, resolution);
- }
+ {
+ _gdk_device_get_axis_info (new_active, i, &use,
+ &min_value, &max_value, &resolution);
+ _gdk_device_add_axis (device, use, min_value, max_value, resolution);
+ }
}
g_signal_emit_by_name (G_OBJECT (device), "changed");
device = GDK_DEVICE (device_win32);
- _gdk_device_add_axis (device, NULL, GDK_AXIS_X, 0, 0, 1);
- _gdk_device_add_axis (device, NULL, GDK_AXIS_Y, 0, 0, 1);
+ _gdk_device_add_axis (device, GDK_AXIS_X, 0, 0, 1);
+ _gdk_device_add_axis (device, GDK_AXIS_Y, 0, 0, 1);
}
if (device->pktdata & PK_X)
{
_gdk_device_add_axis (GDK_DEVICE (device),
- NULL,
GDK_AXIS_X,
axis_x.axMin,
axis_x.axMax,
if (device->pktdata & PK_Y)
{
_gdk_device_add_axis (GDK_DEVICE (device),
- NULL,
GDK_AXIS_Y,
axis_y.axMin,
axis_y.axMax,
if (device->pktdata & PK_NORMAL_PRESSURE)
{
_gdk_device_add_axis (GDK_DEVICE (device),
- NULL,
GDK_AXIS_PRESSURE,
axis_npressure.axMin,
axis_npressure.axMax,
* we convert to x and y tilt in the -1000..1000 range
*/
_gdk_device_add_axis (GDK_DEVICE (device),
- NULL,
GDK_AXIS_XTILT,
-1000,
1000,
1000);
_gdk_device_add_axis (GDK_DEVICE (device),
- NULL,
GDK_AXIS_YTILT,
-1000,
1000,
static gboolean initialized = FALSE;
static Atom label_atoms [GDK_AXIS_LAST] = { 0 };
GdkAxisUse use = GDK_AXIS_IGNORE;
- const char *label;
gint i;
if (!initialized)
}
}
- if (valuator_label != None)
- label = gdk_x11_get_xatom_name_for_display (display, valuator_label);
- else
- label = NULL;
+ _gdk_device_add_axis (device, use, min, max, resolution);
+ GDK_DISPLAY_NOTE (display, INPUT,
+ {
+ const char *label;
+
+ if (valuator_label != None)
+ label = gdk_x11_get_xatom_name_for_display (display, valuator_label);
+ else
+ label = NULL;
- _gdk_device_add_axis (device, label, use, min, max, resolution);
- GDK_DISPLAY_NOTE (display, INPUT, g_message ("\n\taxis: %s %s", label, use == GDK_AXIS_IGNORE ? "(ignored)" : "(used)"));
+ g_message ("\n\taxis: %s %s", label, use == GDK_AXIS_IGNORE ? "(ignored)" : "(used)");
+ });
}
static void